配列 Array
同一データ型 data typeの複数の要素の集合を順序づけて格納・管理するのに 用いられるデータ構造 Data Structure
ベクトル Vektor,行列 Matrixに相当
多次元配列 multidimensional array
[[a,b],[1,2]]]
配列リテラル
要素 と インデックス
配列名[インデックス番号]
入れ子構造
長さ
固定長配列
安全性高い
可変長配列
拡張性高い
list リスト
データを1直線に並べたデータ構造 Data Structure
[a,b,c]
連結リスト Linked list 連想配列 辞書 objectとの比較
search 探索
ランダムな読み取りが高速O(1)
insert 挿入,delete 削除
要素の追加、削除が遅い maxO(n)
後ろ後ろのデータの移動が必要
メモリ上の連続したスロットが必要
code:array.js
var data = ['JavaScript','Ajax','C#','ASP.NET';
console.log(data0);
// JavaScript
console.log(data10)
// C#
要素に対する処理
indexOf 要素のインデックスが欲しい
code:indexof.js
const array= "mikan","apple";
array.indexOf("mikan")//0
find 要素自体が欲しい
配列 · JavaScript Primer #jsprimer 要素を取得
要素が含まれているかという真偽値が欲しい
配列 · JavaScript Primer #jsprimer要素真偽値を取得
every() 配列要素すべてが以下の条件を満たす時True
code:every.js
while (numbers.every((n) => n % 2 === 0)) {}
some() 配列要素が1つでもが以下の条件を満たす時True
code:some.js
while (numbers.some((n) => n % 2 === 0)) {}
分割代入 Destructuring assignment
code:dest.js
const array = 1, 2;
const a, b = array;
console.log(a,b); // 1 2
配列の展開
スプレッド演算子 Spread Operator
code:spread.js
const cart = "banana","apple";
// concat と違い、間に挿入可能
const bag="banana", ...cart,"apple"
console.log(bag); // banana banana apple apple
// 元の配列は壊れない
console.log(cart.join(", ")); // banana,apple
繰り返し
.forEach
要素を先頭から順番にコールバック関数へ
map()
コールバックから返された値から新しい配列をつくる
コールバックから返された値がTrueな要素から新しい配列を作成 filter
code:filter.js
function isOdd(num){
return num % 2 ===1;
}
const numbers=1,2,3,4,5
console.log(array.filter(isOdd))// 1,3,5
反復処理をして新しい値を作るreduce
array.reduce((accumulator, currentValue, index, array)
index ,array省略可能
code:result.js
function sum(numbers) {
return numbers.reduce((total, num) => {
return total + num;
}, 0); // 初期値が0
}
sum(1, 2, 3, 4, 5); // => 15
参考:配列 reduce · JavaScript Primer #jsprimer
? 初期値0
初期値与えたいときは、何か別の値にする
破壊的メソッド
使う時意識
メソッドチェーンの使い慣れ大事
扱い
扱う際のBest Solution模索
Performance パフォーマンス
可読性 readability
maintainability 保守性
TODO
整理したい
データ構造 Data Structureとしてのテンプレートを用意
操作に対する性質
挿入
削除
検索
アルゴリズム Algorithmsとしての性質
in-place Algorithms
JavaScript
お決まりの操作のためのメソッド
便利なメソッド
注意点
mapとforEach
JavaScript - JSXでObject.keysで繰り返し処理するも描画されないe|teratail